{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "QQ图作用：直观的判断某数据是否符合某个分布（一般是正态分布）  \n",
    "方法是：计算数据分百分位边界，并与高斯分布的百分位边界对比。如果此数据服从高斯分布，则画出来的点应该是一条直线"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 加载数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of Rows:  208\n",
      "Number of Columns:  61\n"
     ]
    }
   ],
   "source": [
    "from urllib import request\n",
    "\n",
    "# 注意这种长字符串的写法，值得借鉴\n",
    "target_url = (\"https://archive.ics.uci.edu/ml/machine-learning-\"\n",
    "\"databases/undocumented/connectionist-bench/sonar/sonar.all-data\")\n",
    "\n",
    "req = request.Request(target_url, headers={\"User-Agent\": \"Mozilla/5.0\"})\n",
    "with request.urlopen(req) as resp:\n",
    "    data = resp.read()\n",
    "\n",
    "x_list = []\n",
    "labels = []\n",
    "\n",
    "# 注意，这样读进来的数据都是字符串\n",
    "for line in data.decode('utf-8').split('\\n'):\n",
    "    if not line.strip():\n",
    "        continue\n",
    "    \n",
    "    row = line.strip().split(',')\n",
    "    x_list.append(row)\n",
    "    labels.append(row[-1])\n",
    "    \n",
    "nrows = len(x_list)\n",
    "ncols = len(x_list[1])\n",
    "\n",
    "print(\"Number of Rows: \", nrows)\n",
    "print(\"Number of Columns: \", ncols)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## column 3(第4列)数据的统计描述"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "# import pylab\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.stats as stats"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签，字体名称为win中中文字体对应的英文名\n",
    "plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "col = 3\n",
    "col_data = []\n",
    "for row in x_list:\n",
    "    col_data.append(float(row[col]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# fig = plt.figure(figsize=(16, 8))\n",
    "# stats.probplot(np.array(col_data), dist='norm', plot=plt)  # 直接传col_data(list格式)也没有问题\n",
    "# plt.title(\"Column 3 Probability Plot\")\n",
    "# plt.show()\n",
    "\n",
    "# 还是面向对象的方式比较好\n",
    "fig = plt.figure(figsize=(16, 8))\n",
    "ax = fig.add_subplot(111)\n",
    "stats.probplot(np.array(col_data), dist='norm', plot=ax)  # 直接传col_data(list格式)也没有问题\n",
    "ax.set_title(\"Column 3 Probability Plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上图显示，column 3尾部的数据要多于高斯分布尾部的数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
